Recently, a class of devices in integrated circuits called field programmable devices have been developed. With these devices, the customer is able to receive raw unprogrammed devices and can program these devices to behave according to the characteristics necessary for their application in the field. A common way of implementing field programmable devices is the use of an antifuse. An antifuse derives its name from its characteristics, i.e., when a programming voltage is applied to the antifuse it changes from an open circuit to a short circuit. This is opposite the traditional fuse which is changed from a short circuit to an open circuit by the passage of sufficient current through the fuse. Antifuses have gained popularity due to their compact size and relatively easy fabrication.
In order to program or "blow" an antifuse, a programming voltage V.sub.pp is placed across the dielectric of the antifuse. Two references describing examples of antifuses are shown in Hamdy, et al., U.S. Pat. No. 4,899,205, issued Feb. 6, 1990 and Mohsen et al., European Patent Application No. 0 250 078 A3. An example of programming in a simple orthagonal array is described with regard to FIG. 1. The desired device to be programmed is antifuse 10-2-2 while the other antifuses 10-1-1, 10-2-1, 10-3-1, 10-1-2, 10-3-2, 10-1-3, 10-2-3, and 10-3-3 are to remain "unblown". To accomplish this, a reference voltage of zero volts is applied to bitline B-2 and one half of the programming voltage V.sub.pp /2 is applied to bitlines B-1 and B-3. Also, the programming voltage V.sub.pp is applied to wordline W-2 and one half of the programming voltage V.sub.pp /2 is applied to wordlines W-1 and W-3. In this arrangement, only antifuse 10-2-2 has the full V.sub.pp voltage applied across it. All of the other antifuses have either a zero voltage drop across their dielectric or V.sub.pp /2.
In order to insure proper programming, a sufficient current must pass through the antifuse 10-2-2 after the rupture of the dielectric in the antifuse. This is called soaking current. The soaking current insures that metal bridges through the hole or holes punctured in the dielectric by the application of the programming voltage are formed to provide a reliable low resistance antifuse connection. These bridges are formed by localized melting of the antifuse plates. The soaking current provides the thermal energy to cause this melting.
To insure that adequate soaking current is applied, prior art programming techniques apply the programming voltage from time t.sub.0 to t.sub.1 as shown in FIG. 2. This programming time t.sub.p is selected to insure that adequate soaking current occurs for all of the process possible variations in the fabrication of the device. However, during programming, the voltage V.sub.pp /2 is applied to unprogrammed devices during programming. While not programming these antifuses, the application of this voltage stresses the dielectric of the unprogrammed antifuses which weakens or ages the dielectric. Over the lifetime of the field programmable device, sufficient stress will occur to cause shorts on unprogrammed antifuses if excessively aged during programming. This will destroy the usefulness of the device and it must be replaced. The stress applied during programming accelerates the process that causes these failures. Therefore, it is desirable to minimize the stress applied to unprogrammed devices during the programming of the device. Also, the use of a programming time t.sub.p, which must be longer than that required for all reasonable process variations, maximizes the programming time required. In a device having up to 4 million antifuses (under present technology) and beyond (in the future) the additional time required to program each device can became significant. Excessive programming times limit the throughput of the customer's operation for programming of field programmable devices. Therefore, it is desirable to reduce the programming time.